package StaticTest;
/*
static:
    1.static翻译为“静态”
    2.所有static关键字修饰的都是类相关的，类级别的
    3.所有static修饰的，都是采用“类名.”的方式访问
    4.static修饰的变量：静态变量（不带static的叫实例变量）
    5.static修饰的方法：静态方法（不带static的叫实例方法）
 */
public class StaticTest1 {
    public static void main(String[] args){
        //对于Chinese这个类来说里面的每一个人都是中国国籍，这个变量不会随对象改变而改变，所以,我们可以
        //将country属性定义为静态变量，如果定义为实例变量，将会浪费内存

        //Chinese c1 = new Chinese(1,"张三","中国");


        Chinese c1 = new Chinese(1,"张三");
        Chinese c2 = new Chinese(2,"李四");
        //静态变量使用“类名.”访问
        System.out.println(c1.id+"  "+c1.name+"  "+Chinese.country);
        System.out.println(c2.id+"  "+c2.name+"  "+Chinese.country);
    }
}
class Chinese{
    int id;
    String name;
    static String country = "中国";  //加static的是静态变量，静态变量在类加载时初始化，不需要new对象，静态变量的空间就开辟出来了
    //静态变量储存在方法区中
    public Chinese(){

    }
    public Chinese(int id, String name){
        this.id = id;
        this.name = name;
    }
}